NFT Minting এবং ERC-721 Contract Deployment

Latest Technologies - ইথেরিয়াম (Ethereum) - প্র্যাকটিস প্রোজেক্টস | NCTB BOOK

NFT Minting এবং ERC-721 Contract Deployment করতে হলে Solidity স্মার্ট কন্ট্রাক্ট ডেভেলপমেন্ট, Ethereum নেটওয়ার্কে কন্ট্রাক্ট ডেপ্লয়মেন্ট, এবং NFT ম্যানেজমেন্ট প্রক্রিয়া সম্পর্কে ধারণা থাকা প্রয়োজন। নিচে একটি ERC-721 (NFT) কন্ট্রাক্ট তৈরির এবং NFT মিন্টিং করার প্রক্রিয়া নিয়ে বিস্তারিত আলোচনা করা হলো।

ধাপ ১: ERC-721 Contract Development

ERC-721 হলো Ethereum-এর একটি NFT স্ট্যান্ডার্ড, যা ইউনিক এবং Non-Fungible টোকেন তৈরি করতে ব্যবহৃত হয়। ERC-721 কন্ট্রাক্টের মাধ্যমে আপনি ইউনিক অ্যাসেট, ডিজিটাল আর্টওয়ার্ক, এবং অন্যান্য ক্লেক্টিবলস ব্লকচেইনে মুদ্রণ করতে পারেন।

প্রয়োজনীয় টুলস:

  • Solidity: স্মার্ট কন্ট্রাক্ট লিখতে।
  • Remix IDE: Solidity স্মার্ট কন্ট্রাক্ট লিখতে এবং ডেপ্লয় করতে।
  • MetaMask: Ethereum নেটওয়ার্কে কন্ট্রাক্ট ডেপ্লয় এবং ইন্টারঅ্যাক্ট করতে।

Solidity কোড:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyNFT is ERC721, Ownable {
    uint256 public tokenCounter;

    constructor() ERC721("MyNFT", "MNFT") {
        tokenCounter = 0;
    }

    function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256) {
        uint256 newTokenId = tokenCounter;
        _safeMint(recipient, newTokenId);
        _setTokenURI(newTokenId, tokenURI);
        tokenCounter += 1;
        return newTokenId;
    }

    function _baseURI() internal view virtual override returns (string memory) {
        return "https://api.example.com/metadata/";
    }
}

কোডের বিবরণ:

ERC-721 এবং Ownable:

  • আমরা OpenZeppelin-এর ERC-721 লাইব্রেরি ব্যবহার করছি, যা ERC-721 স্ট্যান্ডার্ড অনুযায়ী কাজ করে।
  • Ownable মোডিফায়ার কন্ট্রাক্টের মালিক নির্ধারণ করে এবং শুধুমাত্র মালিককে NFT মিন্ট করার অনুমতি দেয়।

mintNFT ফাংশন:

  • mintNFT ফাংশনটি নতুন NFT টোকেন মিন্ট করে এবং সেটি একটি নির্দিষ্ট অ্যাড্রেসে প্রেরণ করে।
  • প্রতিটি টোকেনের জন্য একটি tokenURI সংযুক্ত করা হয়, যা NFT-এর মেটাডেটা নির্দেশ করে (যেমন ছবির লিংক, নাম, বিবরণ)।

ধাপ ২: Remix IDE-তে কন্ট্রাক্ট কম্পাইল এবং ডেপ্লয় করা

১. Remix IDE ওপেন করুন।
২. নতুন একটি ফাইল তৈরি করুন, MyNFT.sol নামে এবং উপরের কোডটি পেস্ট করুন।
৩. Solidity Compiler ট্যাবে যান এবং কন্ট্রাক্টটি কম্পাইল করুন।
৪. Deploy & Run Transactions ট্যাবে যান এবং Injected Web3 নির্বাচন করুন (MetaMask ব্রাউজার এক্সটেনশনটি ব্যবহার করে)।
৫. ডেপ্লয় বাটনে ক্লিক করে কন্ট্রাক্টটি Ethereum নেটওয়ার্কে ডেপ্লয় করুন।

নোট: আপনি ডেভেলপমেন্ট নেটওয়ার্ক (যেমন Ropsten বা Rinkeby) ব্যবহার করতে পারেন পরীক্ষার জন্য, কারণ এটি গ্যাস ফি ছাড়াই কাজ করতে সহায়ক।

ধাপ ৩: NFT Minting

এখন আমরা আমাদের কন্ট্রাক্টের মাধ্যমে একটি NFT মিন্ট করবো। Remix IDE-তে mintNFT ফাংশন কল করে এটি করা যাবে।

১. Deployed Contracts সেকশনে আপনার ডেপ্লয় করা কন্ট্রাক্টটি দেখুন।
২. mintNFT ফাংশন নির্বাচন করুন এবং প্রয়োজনীয় ইনপুট প্রদান করুন:

  • recipient: NFT যাকে দেওয়া হবে, সেই অ্যাড্রেস।
  • tokenURI: NFT-এর জন্য মেটাডেটা বা URI (যেমন "https://api.example.com/metadata/1.json")।
    ৩. Transact বাটনে ক্লিক করুন। MetaMask আপনার লেনদেন নিশ্চিত করতে বলবে।

ধাপ ৪: Token URI এবং মেটাডেটা সেট করা

প্রত্যেকটি NFT-এর জন্য একটি ইউনিক tokenURI সেট করা হয়, যা NFT-এর মেটাডেটা নির্দেশ করে। মেটাডেটা সাধারণত JSON ফরম্যাটে থাকে এবং এটি NFT-এর ছবির লিংক, নাম, এবং অন্যান্য বিবরণ নির্দেশ করে।

মেটাডেটার উদাহরণ (JSON ফাইল):

{
  "name": "My First NFT",
  "description": "This is my first NFT on the blockchain!",
  "image": "https://api.example.com/images/1.png",
  "attributes": [
    {
      "trait_type": "Background",
      "value": "Blue"
    },
    {
      "trait_type": "Rarity",
      "value": "Common"
    }
  ]
}

এই JSON ফাইলটি হোস্ট করতে আপনি IPFS (InterPlanetary File System) বা অন্য কোনো হোস্টিং সার্ভিস ব্যবহার করতে পারেন। JSON ফাইলটি হোস্ট করার পর তার URI (যেমন "https://ipfs.io/ipfs/Qm12345") tokenURI হিসেবে ব্যবহার করা হবে।

ধাপ ৫: ফ্রন্ট-এন্ড ইন্টিগ্রেশন (ঐচ্ছিক)

NFT মিন্টিং করার পর আপনি একটি ফ্রন্ট-এন্ড ইন্টারফেস তৈরি করতে পারেন, যেখানে ব্যবহারকারীরা তাদের NFT দেখতে এবং ম্যানেজ করতে পারবে। React.js এবং Ethers.js ব্যবহার করে আপনি একটি সম্পূর্ণ dApp তৈরি করতে পারেন।

উদাহরণ:

  • ব্যবহারকারীরা তাদের Ethereum অ্যাকাউন্ট দিয়ে লগ ইন করবে (MetaMask)।
  • তারা একটি ফর্ম ব্যবহার করে NFT মিন্ট করতে পারবে।
  • মেটাডেটা এবং ছবি প্রদর্শনের জন্য Ethers.js ব্যবহার করে ব্লকচেইন থেকে তথ্য রিট্রিভ করা হবে।

উপসংহার

NFT মিন্টিং এবং ERC-721 কন্ট্রাক্ট ডেপ্লয়মেন্ট একটি অত্যন্ত কার্যকরী প্রক্রিয়া, যা আপনাকে NFT ইকোসিস্টেমের মধ্যে কাজ করার সুযোগ দেয়। Solidity, Remix IDE, এবং MetaMask-এর সাহায্যে আপনি দ্রুত NFT কন্ট্রাক্ট তৈরি এবং ডেপ্লয় করতে পারবেন। আপনার জ্ঞান এবং দক্ষতা বাড়ানোর জন্য আপনি আরও জটিল ফিচার (যেমন রয়্যালটি পেমেন্ট, অটোমেটিক মার্কেটপ্লেস ইন্টিগ্রেশন) যুক্ত করতে পারেন।

Content added By
Promotion